home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
071-080
/
amok75
/
oberon3.0
/
o3demo2.lzh
/
Beispiele
/
Ahorn.mod
< prev
next >
Wrap
Text File
|
1992-08-22
|
1KB
|
45 lines
MODULE Ahorn;
IMPORT XYplane, rn := Random;
TYPE
Table = ARRAY 4 OF RECORD
x1,y1,x2,y2,e,f: LONGREAL;
p: INTEGER;
END;
CONST
(* maple leaf: *)
X0 = 90;
Y0 = 0;
e = 450;
tab = Table( 0.65D0,-0.013D0, 0.013D0, 0.65D0, 0.175D0, 0 , 30,
0.65D0, 0.026D0, 0.026D0, 0.65D0, 0.175D0, 0.35D0, 30,
0.32D0,-0.320D0, 0.320D0, 0.32D0, 0.200D0, 0 , 20,
-0.32D0, 0.320D0, 0.320D0, 0.32D0, 0.800D0, 0 , 20);
VAR
x,y,X,Y: LONGREAL;
r,i: INTEGER;
BEGIN
X := X0; Y := Y0;
REPEAT
r := rn.RND(100);
i := 0;
WHILE (i<4) & (r>=0) DO
DEC(r,tab[i].p);
IF r<0 THEN
x := tab[i].x1*X + tab[i].y1*Y + tab[i].e;
y := tab[i].x2*X + tab[i].y2*Y + tab[i].f;
X := x;
Y := y;
END;
INC(i);
END;
XYplane.Dot(SHORT(ENTIER(e/1.2D0*X)),SHORT(ENTIER((e/2.5D0)*Y)),XYplane.draw);
UNTIL XYplane.Key()#0X;
END Ahorn.